package main.java.dynamicProxy;

import main.java.proxy.Interface;
import main.java.proxy.RealObject;

import java.lang.reflect.Proxy;

public class SimpleDynamicProxy {

    public static void consumer(Interface iface) {
        iface.doSomething();
        iface.somethingElse("bonobo");

    }


    public static void main(String[] args) {
        RealObject real=new RealObject();
        consumer(real);

        // 插入代理，并且再次调用
        Interface proxy= (Interface) Proxy.newProxyInstance(    //  Proxy.newProxyInstance 用来创建动态代理
                Interface.class.getClassLoader()
                ,new Class[]{Interface.class}
                ,new DynamicProxyHandler(real));
        consumer(proxy);
    }

}
